﻿using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.Build.Framework.XamlTypes;
using Microsoft.VisualStudio.ProjectSystem;
using Microsoft.VisualStudio.ProjectSystem.Properties;

namespace Red.Scripts.Project.Deploy.QuestSelector
{
    [ExportDynamicEnumValuesProvider( "QuestSelectorProvider" )]
    [AppliesTo( MyUnconfiguredProject.UniqueCapability )]
    public class Provider : IDynamicEnumValuesProvider
    {
        #region IDynamicEnumValuesProvider

        /// <summary>
        /// Returns an <see cref="IDynamicEnumValuesGenerator"/> instance prepared to generate dynamic enum values
        /// given an (optional) set of options.
        /// </summary>
        /// <param name="options">
        /// A set of options set in XAML that helps to customize the behavior of the
        /// <see cref="IDynamicEnumValuesGenerator "/> instance in some way.
        /// </param>
        /// <returns>
        /// Either a new <see cref="IDynamicEnumValuesGenerator"/> instance
        /// or an existing one, if the existing one can serve responses based on the given <paramref name="options"/>.
        /// </returns>
        public async Task<IDynamicEnumValuesGenerator> GetProviderAsync( IList<NameValuePair> options )
        {
            // TODO: Provide your own implementation
            await Task.Yield();

            return new Generator();
        }

        #endregion IDynamicEnumValuesProvider
    }
}
